using System;
using System.Collections.Generic;
using ns26;
using ns27;
using Triton.Game.Mono;

namespace Triton.Game.Mapping
{
	[Attribute38("Downloader")]
	public class Downloader : MonoBehaviour
	{
		public List<string> m_bundlesToDownload => method_3<Class272>("m_bundlesToDownload")?.method_25();

		public static string m_remoteUri => MonoClass.smethod_8(TritonHs.MainAssemblyPath, "", "Downloader", "m_remoteUri");

		public static string m_remoteUriCN => MonoClass.smethod_8(TritonHs.MainAssemblyPath, "", "Downloader", "m_remoteUriCN");

		public static int m_remoteUriCNIndex => MonoClass.smethod_6<int>(TritonHs.MainAssemblyPath, "", "Downloader", "m_remoteUriCNIndex");

		public bool m_isDownloading => method_2<bool>("m_isDownloading");

		public float m_downloadStartTime => method_2<float>("m_downloadStartTime");

		public bool m_hasShownInternalFailureAlert => method_2<bool>("m_hasShownInternalFailureAlert");

		public Downloader(IntPtr address, string className)
			: base(address, className)
		{
		}

		public Downloader(IntPtr address)
			: this(address, "Downloader")
		{
		}

		public static Downloader Get()
		{
			return MonoClass.smethod_15<Downloader>(TritonHs.MainAssemblyPath, "", "Downloader", "Get", Array.Empty<object>());
		}

		public static int GetTryCount()
		{
			return MonoClass.smethod_14<int>(TritonHs.MainAssemblyPath, "", "Downloader", "GetTryCount", Array.Empty<object>());
		}

		public static string BundleURL(string fileName)
		{
			return MonoClass.smethod_12(TritonHs.MainAssemblyPath, "", "Downloader", "BundleURL", fileName);
		}

		public static string NextBundleURL(string fileName)
		{
			return MonoClass.smethod_12(TritonHs.MainAssemblyPath, "", "Downloader", "NextBundleURL", fileName);
		}

		public void Awake()
		{
			method_8("Awake");
		}

		public void OnDestroy()
		{
			method_8("OnDestroy");
		}

		public void Start()
		{
			method_8("Start");
		}

		public bool AllLocalizedAudioBundlesDownloaded()
		{
			return method_11<bool>("AllLocalizedAudioBundlesDownloaded", Array.Empty<object>());
		}

		public void DownloadLocalizedBundles()
		{
			method_9("DownloadLocalizedBundles", new Class276.Enum20[0]);
		}

		public void DeleteLocalizedBundles()
		{
			method_8("DeleteLocalizedBundles");
		}

		public void WillReset()
		{
			method_8("WillReset");
		}

		public List<string> BundlesToDownloadForLocale()
		{
			return method_14<Class272>("BundlesToDownloadForLocale", Array.Empty<object>())?.method_25();
		}

		public void DownloadNextFile()
		{
			method_8("DownloadNextFile");
		}

		public List<string> BundlesMissing()
		{
			return method_14<Class272>("BundlesMissing", Array.Empty<object>())?.method_25();
		}
	}
}
